program S2_4;
var s:string[101];
    a:string[50];
    n:array[0..9] of shortint;
    c:char;
    i,odds,j,ps:integer;

begin
s:='';
write('>>> ');
repeat
	read(c);
	s:=s+c;
	until c='.';

for i:=1 to length(s)-1 do
	if s[i] in ['0'..'9'] then begin
		inc( n[ ord(s[i])-ord('0') ] );
		end;

a:='';
odds:=0;
for i:=0 to 9 do write(n[i]);writeln;
for i:=9 downto 0 do
	if odd(n[i]) then
		begin
		inc(odds);
		ps:=i;
		end
	else
		begin
		for j:=1 to (n[i] div 2) do
			a:=a + chr( i+ord('0') );
		end;

j:=length(a);
if odds>1 then
	writeln('NO')
else
	begin
	if odds=1 then
		begin
		a:=a+chr(ps+ord('0'));
		inc(j);
		for i:=length(a)-1 downto 1 do begin
			insert(a[i],a,j+1);
			inc(j);
			end;
		end
	else
		for i:=length(a) downto 1 do begin
			insert(a[i],a,j+1);
			inc(j);
			end;
	writeln('YES');
	writeln(a);
	end;
end.
